8ad92b6260e47a02d33384366cc91a1dae419f10,core/src/main/java/com/orientechnologies/orient/core/sql/OCommandExecutorSQLSelect.java,OCommandExecutorSQLSelect,convertToBetweenClause,#OSQLFilterCondition#,960

Before Change


    String leftField;
    if (leftCondition.getLeft() instanceof OSQLFilterItemField) {
      OSQLFilterItemField itemField = (OSQLFilterItemField) leftCondition.getLeft();
      if (itemField.isFieldChain())
        return null;

      leftField = itemField.getRoot();

After Change


    if (!(rightCondition.getLeft() instanceof OSQLFilterItemField) && !(rightCondition.getRight() instanceof OSQLFilterItemField))
      return null;

    if (leftCondition.getLeft() instanceof OSQLFilterItemField && leftCondition.getRight() instanceof OSQLFilterItemField)
      return null;

    if (!(leftCondition.getLeft() instanceof OSQLFilterItemField) && !(leftCondition.getRight() instanceof OSQLFilterItemField))
      return null;

    final List<Object> betweenBoundaries = new ArrayList<Object>();

    if (rightCondition.getLeft() instanceof OSQLFilterItemField) {
      OSQLFilterItemField itemField = (OSQLFilterItemField) rightCondition.getLeft();
      if (!itemField.isFieldChain())
        return null;

      if (itemField.getFieldChain().getItemCount() > 1)
        return null;

      rightField = itemField.getRoot();
      betweenBoundaries.add(rightCondition.getRight());
    } else if (rightCondition.getRight() instanceof OSQLFilterItemField) {
      OSQLFilterItemField itemField = (OSQLFilterItemField) rightCondition.getRight();
      if (!itemField.isFieldChain())
        return null;

      if (itemField.getFieldChain().getItemCount() > 1)
        return null;

      rightField = itemField.getRoot();
      betweenBoundaries.add(rightCondition.getLeft());
    } else
      return null;

    betweenBoundaries.add("and");

    String leftField;
    if (leftCondition.getLeft() instanceof OSQLFilterItemField) {
      OSQLFilterItemField itemField = (OSQLFilterItemField) leftCondition.getLeft();
      if (!itemField.isFieldChain())
        return null;

      if (itemField.getFieldChain().getItemCount() > 1)
        return null;

      leftField = itemField.getRoot();
      betweenBoundaries.add(leftCondition.getRight());
    } else if (leftCondition.getRight() instanceof OSQLFilterItemField) {
      OSQLFilterItemField itemField = (OSQLFilterItemField) leftCondition.getRight();
      if (!itemField.isFieldChain())
        return null;

      if (itemField.getFieldChain().getItemCount() > 1)
        return null;

      leftField = itemField.getRoot();
      betweenBoundaries.add(leftCondition.getLeft());